/*
这个示例将展示如何创建一个简单的计数器应用程序，其中使用 InheritedWidget 来管理计数器的状态
**/

import 'package:flutter/material.dart';

class CounterInheritedWidget extends InheritedWidget {
  final int counter;
  final Function() incrementCounter;

  CounterInheritedWidget({
    Key? key,
    required this.counter,
    required this.incrementCounter,
    required Widget child,
  }) : super(key: key, child: child);

  // 当数据发生变化时，决定是否通知子树中的依赖此数据的组件
  @override
  bool updateShouldNotify(CounterInheritedWidget oldWidget) {
    return oldWidget.counter != counter;
  }

  // 静态方法，方便子组件获取共享的数据
  static CounterInheritedWidget? of(BuildContext context) {
    return context.dependOnInheritedWidgetOfExactType<CounterInheritedWidget>();
  }
}
